package com.ahora.org.ejb.jpa.entities;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * The persistent class for the TB_PERSONA database table.
 * 
 */
@Entity
@Table(name = "TB_PERSONA")
public class Persona implements Serializable{

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEC_PERSONA")
	@SequenceGenerator(name = "SEC_PERSONA", sequenceName = "SEC_PERSONA2")
	@Column(name = "ID_PERSONA")
	private int idPersona;
	
	@Column(name = "NOMBRE_PERSONA")
	private String nombrePersona;
	
	@Column(name = "APELL_MATER")
	private String apellMater;

	@Column(name = "APELL_PATER")
	private String apellPater;

	@Column(name = "CONTRASENIA")
	private String contrasenia;

	private String email;

	@Column(name = "FECHA_MODIFICACION")
	private Timestamp fechaModificacion;

	@Column(name = "FECHA_REGISTRO")
	private Timestamp fechaRegistro;

	@Column(name = "ID_ESTADO")
	private int idEstado;

	@Column(name = "NOMBRE_DIRECCION")
	private String nombreDireccion;

	@Column(name = "NUM_DOCUMENTO")
	private String numDocumento;

	@Column(name = "RAZON_SOCIAL")
	private String razonSocial;

	@Column(name = "REPRESENTANTE_LEGAL")
	private String representanteLegal;

	@Column(name = "EMAIL_ALTERNATIVO")
	private String emailAlterno;

	private String ruc;

	private String sexo;

	private String telefono1;

	private String telefono2;
	
	private int bloqueado;
	
	@Lob()
	private byte[] declaracion;
	// bi-directional many-to-one association to Cita
	@OneToMany(mappedBy = "tbPersona")
	private Set<Cita> tbCitas;

	// bi-directional many-to-one association to HistoricoExpediente
	@OneToMany(mappedBy = "tbPersona")
	private Set<HistoricoExpediente> tbHistoricoExpedientes;

	// bi-directional many-to-one association to TipoDocumentoIdentidad
	@ManyToOne
	@JoinColumn(name = "ID_TIPO_DOCUMENTO_IDENTIDAD")
	private TipoDocumentoIdentidad tbTipoDocumentoIdentidad;

	// bi-directional many-to-one association to Expediente
	@OneToMany(mappedBy = "tbPersona")
	private Set<Expediente> tbExpedientes;

	// bi-directional many-to-one association to Ubigeo
	@ManyToOne
	@JoinColumn(name = "ID_DIST")
	private Ubigeo tbUbigeo;

	public Persona() {
	}

	public int getIdPersona() {
		return this.idPersona;
	}

	public void setIdPersona(int idPersona) {
		this.idPersona = idPersona;
	}

	public String getApellMater() {
		return this.apellMater;
	}

	public void setApellMater(String apellMater) {
		this.apellMater = apellMater;
	}

	public String getApellPater() {
		return this.apellPater;
	}

	public void setApellPater(String apellPater) {
		this.apellPater = apellPater;
	}

	public String getContrasenia() {
		return this.contrasenia;
	}

	public void setContrasenia(String contrasenia) {
		this.contrasenia = contrasenia;
	}

	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Timestamp getFechaModificacion() {
		return this.fechaModificacion;
	}

	public void setFechaModificacion(Timestamp fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}

	public Timestamp getFechaRegistro() {
		return this.fechaRegistro;
	}

	public void setFechaRegistro(Timestamp fechaRegistro) {
		this.fechaRegistro = fechaRegistro;
	}

	public int getIdEstado() {
		return this.idEstado;
	}

	public void setIdEstado(int idEstado) {
		this.idEstado = idEstado;
	}

	public String getNombreDireccion() {
		return this.nombreDireccion;
	}

	public void setNombreDireccion(String nombreDireccion) {
		this.nombreDireccion = nombreDireccion;
	}

	public String getNombrePersona() {
		return this.nombrePersona;
	}

	public void setNombrePersona(String nombrePersona) {
		this.nombrePersona = nombrePersona;
	}

	public String getNumDocumento() {
		return this.numDocumento;
	}

	public void setNumDocumento(String numDocumento) {
		this.numDocumento = numDocumento;
	}

	public String getRazonSocial() {
		return this.razonSocial;
	}

	public void setRazonSocial(String razonSocial) {
		this.razonSocial = razonSocial;
	}

	public String getRepresentanteLegal() {
		return this.representanteLegal;
	}

	public void setRepresentanteLegal(String representanteLegal) {
		this.representanteLegal = representanteLegal;
	}

	public String getRuc() {
		return this.ruc;
	}

	public void setRuc(String ruc) {
		this.ruc = ruc;
	}

	public String getSexo() {
		return this.sexo;
	}

	public void setSexo(String sexo) {
		this.sexo = sexo;
	}

	public String getTelefono1() {
		return this.telefono1;
	}

	public void setTelefono1(String telefono1) {
		this.telefono1 = telefono1;
	}

	public String getTelefono2() {
		return this.telefono2;
	}

	public void setTelefono2(String telefono2) {
		this.telefono2 = telefono2;
	}

	public Set<HistoricoExpediente> getTbHistoricoExpedientes() {
		return this.tbHistoricoExpedientes;
	}

	public void setTbHistoricoExpedientes(
			Set<HistoricoExpediente> tbHistoricoExpedientes) {
		this.tbHistoricoExpedientes = tbHistoricoExpedientes;
	}

	public TipoDocumentoIdentidad getTbTipoDocumentoIdentidad() {
		return this.tbTipoDocumentoIdentidad;
	}

	public void setTbTipoDocumentoIdentidad(
			TipoDocumentoIdentidad tbTipoDocumentoIdentidad) {
		this.tbTipoDocumentoIdentidad = tbTipoDocumentoIdentidad;
	}

	public Ubigeo getTbUbigeo() {
		return this.tbUbigeo;
	}

	public void setTbUbigeo(Ubigeo tbUbigeo) {
		this.tbUbigeo = tbUbigeo;
	}

	public Set<Cita> getTbCitas() {
		return tbCitas;
	}

	public void setTbCitas(Set<Cita> tbCitas) {
		this.tbCitas = tbCitas;
	}

	public Set<Expediente> getTbExpedientes() {
		return tbExpedientes;
	}

	public void setTbExpedientes(Set<Expediente> tbExpedientes) {
		this.tbExpedientes = tbExpedientes;
	}

	public String getEmailAlterno() {
		return emailAlterno;
	}

	public void setEmailAlterno(String emailAlterno) {
		this.emailAlterno = emailAlterno;
	}

	public byte[] getDeclaracion() {
		return declaracion;
	}

	public void setDeclaracion(byte[] declaracion) {
		this.declaracion = declaracion;
	}

	public int getBloqueado() {
		return bloqueado;
	}

	public void setBloqueado(int bloqueado) {
		this.bloqueado = bloqueado;
	}
	
}